class Venta < Comunicacion
	has_one :producto
	belongs_to :producto
	
	name = 'Venta'

	# Verifica que el usuario tenga el rol necesario para administrar la venta.
	def self.get_mod_venta(user,venta)
		@asignados = UsuarioCuenta.find(:first,:conditions => ['user_id = ? and cuenta_id = ?',user.id,venta.cuenta.id])
		if @asignados || user.role_user.descripcion == 'Administrador' then
			return true
		else
	  	return false 
		end		
	end

	# Busca todas las ventas, paginando el resultado.
	def self.search_all(page)
		paginate :per_page => 3, :page => page, :order => 'fecha DESC'
	end
	
	# Busca todas las ventas que tengan un trainee asociado.
	def self.listas_trainees()
		@trainees_ids = Venta.find(:all).collect(&:producto_id) 
	  @trainees = Trainee.find(:all, :conditions => ['id in (?)',@trainees_ids]) 
	  @trainees = @trainees.uniq
	end
	
	# Busca todos los contactos asociados a una venta.
	def self.listas_contactos()
		@contactos_ids = Venta.find(:all).collect(&:contacto_id)
	  @contactos = Contacto.find(:all, :conditions => ['id in (?)',@contactos_ids])	
	  @contactos = @contactos.uniq
	end

	# Busca todos las ventas que tengan al trainee (trainee_id) asociado.
	def self.search_trainee(page, trainee_id)
		paginate :per_page => 3, :page => page, :order => 'id', :conditions => ['producto_id = '+trainee_id]
	end
	
	# Busca todas las ventas asociadas a la cuenta.
	def self.search_cuenta(page, cuenta_id)
		paginate :per_page => 3, :page => page, :order => 'id', :conditions => ['cuenta_id = '+cuenta_id]
	end

	# Busca todas las ventas asociadas al contacto.
	def self.search_contacto(page, contacto_id)
		paginate :per_page => 3, :page => page, :order => 'id', :conditions => ['contacto_id = '+contacto_id]
	end

	def get_form_html_id 
		'ven_form'
	end
	
	def get_name 
		'Venta'
	end 
	
	def get_partial
		'comunicaciones/forms/form_ven'
	end	
	
end
